package aspectjutil.eventmanager.label;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention( RetentionPolicy.RUNTIME)
@Target( ElementType.METHOD)
public @interface PreEvent {
	/**
	 * Array of events in interest
	 * @return
	 */
	public Class<?>[] value();
	
	/**
	 * Specify whether interesting in event only within same thread.
	 * Default is true.
	 */
	public boolean amongInstancesInThread() default true;
	
	/**
	 * Specify execution order for each event among event listener methods.
	 * @return
	 */
	public int[] turnOnEachEvent() default {};
}
